余烬缀记

Windows 下 CLion 开发 Rust 的 Debugger 配置

edited on:

此记录用于解决:

  • CLion debug 时弹出对话框,解决方式:使用对应的构建工具 Unable to run debugger GNU debugger cannot be used with MSVC Rust toolchain.
  • 无法读取变量值,报错:Converting character sets: No Error.,解决方式:更新 MinGW
  • 无法正确显示变量值,解决方式:不使用 MSVC

CLion 支持两种调试 Rust 的方式,分别是 GNU 和 MSVC,GNU 用于调试 Rust x86_64-pc-windows-gnu 的工具链,MSVC 用于调试 Rust x86_64-pc-windows-msvc 的工具链

这里推荐使用 GNU 也就是 Rust x86_64-pc-windows-gnu 工具链调试,GNU 使用 MinGW 构建工具,MSVC 使用 Visual Studio,MSVC 更兼容 Windows 的二进制文件/库,但是用在 CLion 调试上很糟糕,因此调试还是使用 GNU

# 配置 CLion

CLion 自带了 MinGW,但是由于其版本有些落后对于调试也有问题,因此需要下载最新的 x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2.7z

将其下载后解压至特定目录,在 CLion 的 构建、执行、部署 > 工具链 处新建 MinGW,将工具集的路径指向解压的 MinGW 目录路径,调试器改为 MinGW GDB 即可

# 配置 Rust

Windows 下面的 Rust 默认使用 stable-x86_64-pc-windows-msvc 工具链,需要切换到 stable-x86_64-pc-windows-gnu,运行以下命令进行切换

rustup toolchain install stable-x86_64-pc-windows-gnu
rustup default stable-x86_64-pc-windows-gnu

# 补充

人麻了,使用 mingw 会存在 cannot find -lntdll 的问题,使用 msvc 调试器存在问题

cannot find -lntdll 错时可以配置 GCC 的位置为下载的 MinGW 里面的 gcc

$Env:RUSTFLAGS = "-C linker={Mingw64_Directory}/bin/gcc"
# e.g $Env:RUSTFLAGS = "-C linker=C:\Users\{user}\Applications\mingw64\bin\gcc"

重启终端